package definition;

import java.util.Objects;

/**
 * 尖括号内的符号C指代泛型类，不代表具体类
 * @author fidel
 * @param <C>
 */
public class GenericDefinition<C> {
    private C c;
    
    /**
     * 尖括号内的符号String，Class，T指代泛型类，不代表具体类
     * @param <R>
     * @param <S>
     * @param <T>
     * @param z
     * @param x
     * @param y
     * @return
     */
    static <R, S, T> T get(T z, R x, S y) {
        return Objects.nonNull(x) && Objects.nonNull(y) ? z : null;
    }
    
    public C getC() {
        return c;
    }

    public void setC(C c) {
        this.c = c;
    }

    Class<? extends Object> getGenericClass() {
        return c.getClass();
    }
}
